package com.skivingcloud.admin.sys.service;

import com.skivingcloud.admin.sys.entity.SysBusinessCommon;
import com.skivingcloud.admin.sys.entity.User;
import com.skivingcloud.common.utils.PageUtils;

import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.databind.JsonNode;

/**
 * <p>
 * 通用业务数据表(业务的表单数据） 服务类
 * </p>
 *
 * @author skivingcloud
 * @since 2022-07-07
 */
public interface ISysBusinessCommonService extends IService<SysBusinessCommon> {

	PageUtils queryPage(Map<String, Object> params);

	void add(SysBusinessCommon sysBusinessCommon, User user);

	void update(SysBusinessCommon sysBusinessCommon, User user);

	void deleteBatch(String[] ids);

	SysBusinessCommon selectById(String id);

	/**
	 * 通用的业务提交方法，以json格式村塾表单数据，如果定义了工作流则会启动一个流程
	 * 
	 * @param jsonNode
	 * @param user
	 * @throws Exception
	 */
	void submitBusinessCommonAdd(JsonNode jsonNode, User user) throws Exception;

	/**
	 * 通用的业务提交方法，以json格式存储表单数据，如果定义了工作流则会提交流程流转
	 * 
	 * @param jsonNode
	 * @param user
	 * @throws Exception
	 */
	void submitBusinessCommonUpdate(JsonNode jsonNode, User user) throws Exception;

}
